//
//  UIImage+Extension.swift
//  afanti
//
//  Created by albert on 16/4/15.
//  Copyright © 2016年 albert. All rights reserved.
//

import UIKit

extension UIImage {
    
    /** 获取圆形头像图片 */
    class func circleImage(imageName: String, borderColor: UIColor, borderWidth:CGFloat) -> UIImage?{
        //需求：从位图上下文，裁剪图片[剪成圆形，也添加圆形的边框，生成一张图片]
        
        //获取要裁剪图片
        let image = UIImage(named: imageName)
        if image == nil{
            return nil
        }
        
        let imageRect = CGRect(x: 0, y: 0, width: image!.size.width, height: image!.size.height)
        //1、开启位图上下文
        UIGraphicsBeginImageContextWithOptions(image!.size, false, 0.0);
        
        // 在自定义的view的drawRect方法里，调用UIGraphicsGetCurrentContext()获取的上下文，是图层上下文（Layer Graphics Context）
        //1.1获取位图上下文
        let bitmapContext = UIGraphicsGetCurrentContext();  //此处是获取的位图上下文
        
        //2、往位图上下文裁剪图片
        //2.1指定一个圆形的路径，把圆形之外的剪切掉
        CGContextAddEllipseInRect(bitmapContext, imageRect);
        CGContextClip(bitmapContext);
        
        //2.2添加图片
        image?.drawInRect(imageRect);
        
        //2.3添加边框
        borderColor.set();
        CGContextSetLineWidth(bitmapContext, borderWidth);
        CGContextAddEllipseInRect(bitmapContext, imageRect);
        CGContextStrokePath(bitmapContext);  //记得渲染
        
        //3、获取当前位图上下文的图片
        let newImage = UIGraphicsGetImageFromCurrentImageContext();
        
        //4、结束位图编辑
        UIGraphicsEndImageContext();
        
        return newImage;
    }
}